//============================================================================================
/**
 * @file	zkn2_obj.h
 * @brief	金銀図鑑画面 OBJ関連
 * @author	Hiroyuki Nakamura
 * @date	08.08.26
 */
//============================================================================================
#ifndef	ZKN2_OBJ_H
#define	ZKN2_OBJ_H


//============================================================================================
//	定数定義
//============================================================================================

// アニメ番号
enum {
	ZKN2OBJ_M_ANM_BALL = 0,
	ZKN2OBJ_M_ANM_LIST_CUR,
	ZKN2OBJ_M_ANM_BTN_CUR1,
	ZKN2OBJ_M_ANM_BTN_CUR2,
	ZKN2OBJ_M_ANM_RAIL,
	ZKN2OBJ_M_ANM_UP_ON,
	ZKN2OBJ_M_ANM_UP_TOUCH,
	ZKN2OBJ_M_ANM_UP_OFF,
	ZKN2OBJ_M_ANM_DOWN_ON,
	ZKN2OBJ_M_ANM_DOWN_TOUCH,
	ZKN2OBJ_M_ANM_DOWN_OFF,
	ZKN2OBJ_M_ANM_BAR1,
	ZKN2OBJ_M_ANM_BAR2,
	ZKN2OBJ_M_ANM_BAR3,
	ZKN2OBJ_M_ANM_BAR4,
	ZKN2OBJ_M_ANM_BAR5,
	ZKN2OBJ_M_ANM_BAR6,
	ZKN2OBJ_M_ANM_BAR7,
	ZKN2OBJ_M_ANM_BAR8,
	ZKN2OBJ_M_ANM_BAR9,
	ZKN2OBJ_M_ANM_BAR10,
	ZKN2OBJ_M_ANM_BAR11,
	ZKN2OBJ_M_ANM_BAR12,
	ZKN2OBJ_M_ANM_SWITCH,
	ZKN2OBJ_M_ANM_ARROW_L,
	ZKN2OBJ_M_ANM_ARROW_R,
	ZKN2OBJ_M_ANM_TIME,
	ZKN2OBJ_M_ANM_TIME_CUR,
	ZKN2OBJ_M_ANM_LIST,
	ZKN2OBJ_M_ANM_MAX,
	ZKN2OBJ_M_ANM_MIN,
	ZKN2OBJ_M_ANM_WEIGHT1,
	ZKN2OBJ_M_ANM_WEIGHT2,
	ZKN2OBJ_M_ANM_WEIGHT3,
	ZKN2OBJ_M_ANM_CUR_X_4x4,
	ZKN2OBJ_M_ANM_CUR_X_9x2,
	ZKN2OBJ_M_ANM_CUR_X_15x2,
	ZKN2OBJ_M_ANM_CUR_X_21x2,
	ZKN2OBJ_M_ANM_CUR_X_7x2,
	ZKN2OBJ_M_ANM_CUR_X_11x2,
	ZKN2OBJ_M_ANM_CUR_X_2x2,
	ZKN2OBJ_M_ANM_WEIGHT_MAX,
	ZKN2OBJ_M_ANM_WEIGHT_MIN,
	ZKN2OBJ_M_ANM_NO_0,
	ZKN2OBJ_M_ANM_NO_1,
	ZKN2OBJ_M_ANM_NO_2,
	ZKN2OBJ_M_ANM_NO_3,
	ZKN2OBJ_M_ANM_NO_4,
	ZKN2OBJ_M_ANM_NO_5,
	ZKN2OBJ_M_ANM_NO_6,
	ZKN2OBJ_M_ANM_NO_7,
	ZKN2OBJ_M_ANM_NO_8,
	ZKN2OBJ_M_ANM_NO_9,
	ZKN2OBJ_M_ANM_OMOSA_R,
	ZKN2OBJ_M_ANM_OMOSA_R_TOUCH,
	ZKN2OBJ_M_ANM_OMOSA_R_OFF,
	ZKN2OBJ_M_ANM_OMOSA_L,
	ZKN2OBJ_M_ANM_OMOSA_L_TOUCH,
	ZKN2OBJ_M_ANM_OMOSA_L_OFF,
	ZKN2OBJ_M_ANM_CUR_X_14x2,
	ZKN2OBJ_M_ANM_CUR_X_20x2,
	ZKN2OBJ_M_ANM_CUR_X_4x3,
	ZKN2OBJ_M_ANM_CUR_X_6x3,
	ZKN2OBJ_M_ANM_RAIL_SHORT,
	ZKN2OBJ_M_ANM_ARROW_U,
	ZKN2OBJ_M_ANM_ARROW_D,
	ZKN2OBJ_M_ANM_CUR_SUGATA,
};

// 検索画面ＯＢＪ標示モード
enum {
	ZKN2OBJ_SEARCH_MAIN = 0,
	ZKN2OBJ_SEARCH_FORM,
	ZKN2OBJ_SEARCH_HEIGHT,
	ZKN2OBJ_SEARCH_WEIGHT,
	ZKN2OBJ_SEARCH_NONE,
};

// 検索サイズモード
enum {
	ZKN2OBJ_SEARCH_SIZMODE_HEIGHT = 0,
	ZKN2OBJ_SEARCH_SIZMODE_WEIGHT,
};

// 重さ比べアニメワーク
typedef struct {
	ZKN2_WORK * sys;
	fx32	fall_speed;
	u16	anm;
	u8	mv;

	u8	main_seq;

	s32	rot_mv;
	s32	rot_spd;
	s32	rot_max;

	s16	jump_mv;
	s16	jump_spd;
	u16	jump_obj_c;
	u16	jump_obj_p;

}ZKN2OBJ_WEIGHT_ANM_WORK;


//============================================================================================
//	プロトタイプ宣言
//============================================================================================

//--------------------------------------------------------------------------------------------
/**
 * セルアクター初期化
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_Init( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * セルアクター解放
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_Exit( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * セルアクターアニメメイン
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_AnmMain( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * セルアクターアニメ変更
 *
 * @param	wk		図鑑画面ワーク
 * @param	id		OBJ ID
 * @param	anm		アニメ番号
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_AnmSet( ZKN2_WORK * wk, u32 id, u32 anm );

//--------------------------------------------------------------------------------------------
/**
 * セルアクターアニメ状態取得
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	BOOL
 */
//--------------------------------------------------------------------------------------------
extern BOOL ZKN2OBJ_AnmGet( ZKN2_WORK * wk, u32 id );

//--------------------------------------------------------------------------------------------
/**
 * セルアクター表示切り替え
 *
 * @param	wk		図鑑画面ワーク
 * @param	id		OBJ ID
 * @param	flg		表示フラグ
 *
 * @return	none
 *
 * @li	flg = TRUE : 表示
 * @li	flg = FALSE : 非表示
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_Vanish( ZKN2_WORK * wk, u32 id, BOOL flg );

//--------------------------------------------------------------------------------------------
/**
 * ポケモンアイコン変更
 *
 * @param	wk		図鑑画面ワーク
 * @param	pos		ポケモン位置
 * @param	id		OBJ ID
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_PokeIconChange( ZKN2_WORK * wk, u32 pos, u32 id );

//--------------------------------------------------------------------------------------------
/**
 * リストページ：ポケモンアイコン初期化
 *
 * @param	wk			図鑑画面ワーク
 * @param	startID		開始OBJ ID
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_PokeIconListInit( ZKN2_WORK * wk, u32 startID );

//--------------------------------------------------------------------------------------------
/**
 * リストページ：ポケモンアイコンスクロール（上方向）
 *
 * @param	wk			図鑑画面ワーク
 * @param	startID		開始OBJ ID
 * @param	mv			移動量
 * @param	cnt			スクロールカウンタ（グリッド単位）
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_PokeIconScroll_U( ZKN2_WORK * wk, u32 startID, s8 mv, u8 cnt );

//--------------------------------------------------------------------------------------------
/**
 * リストページ：ポケモンアイコンスクロール（下方向）
 *
 * @param	wk			図鑑画面ワーク
 * @param	startID		開始OBJ ID
 * @param	mv			移動量
 * @param	cnt			スクロールカウンタ（グリッド単位）
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_PokeIconScroll_D( ZKN2_WORK * wk, u32 startID, s8 mv, u8 cnt );

//--------------------------------------------------------------------------------------------
/**
 * ポケモングラフィック切り替え
 *
 * @param	wk			図鑑画面ワーク
 * @param	mons		ポケモン番号
 * @param	pokeID		ポケモングラフィックのOBJ ID
 * @param	dmyID		？グラフィックのOBJ ID
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_PokeGraChange( ZKN2_WORK * wk, u16 mons, u32 pokeID, u32 dmyID );

//--------------------------------------------------------------------------------------------
/**
 * 足跡切り替え
 *
 * @param	wk		図鑑画面ワーク
 * @param	mons	ポケモン番号
 * @param	pos		リスト位置
 * @param	objD	OBJ ID
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_PokeFootChange( ZKN2_WORK * wk, u16 mons, u32 pos, u32 objID );

//--------------------------------------------------------------------------------------------
/**
 * タイプアイコン表示切替
 *
 * @param	wk		図鑑画面ワーク
 * @param	mons	ポケモン番号
 * @param	pos		配置位置
 * @param	objD	OBJ ID
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_TypeIconAnmChg( ZKN2_WORK * wk, u16 mons, u32 pos, u32 objID );

//--------------------------------------------------------------------------------------------
/**
 * 言語アイコン表示切替（下画面）
 *
 * @param	wk		図鑑画面ワーク
 * @param	mons	ポケモン番号
 * @param	id		OBJ ID
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_ListMainLangIconChg( ZKN2_WORK * wk, u16 mons, u32 objID );

//--------------------------------------------------------------------------------------------
/**
 * 言語アイコン表示切替（上画面）
 *
 * @param	wk		図鑑画面ワーク
 * @param	mons	ポケモン番号
 * @param	id		OBJ ID
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_ListSubLangIconChg( ZKN2_WORK * wk, u16 mons, u32 objID );

//--------------------------------------------------------------------------------------------
/**
 * リストページのＯＢＪ追加
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_ListPageInit( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * リストページの言語切り替え矢印表示切替
 *
 * @param	wk		図鑑画面ワーク
 * @param	flg		TRUE = ON, FALSE = OFF
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_LangArrowVanish( ZKN2_WORK * wk, u32 objID, BOOL flg );

//--------------------------------------------------------------------------------------------
/**
 * リストページの下画面言語アイコン表示切替
 *
 * @param	wk		図鑑画面ワーク
 * @param	flg		TRUE = ON, FALSE = OFF
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_ListLangVanish( ZKN2_WORK * wk, u32 objID, BOOL flg );

//--------------------------------------------------------------------------------------------
/**
 * 図鑑モード切替スイッチ移動
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_CoverSwithPut( ZKN2_WORK * wk, u32 objID );

//--------------------------------------------------------------------------------------------
/**
 * 指定座標に図鑑モード切替スイッチがあるか
 *
 * @param	wk		図鑑画面ワーク
 * @param	x		Ｘ座標
 * @param	y		Ｙ座標
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern BOOL ZKN2OBJ_CoverSwitchCheck( ZKN2_WORK * wk, u32 x, u32 y );

//--------------------------------------------------------------------------------------------
/**
 * 図鑑モード切り替えスイッチＯＢＪをスクロール
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJ ID
 * @param	spd		移動速度
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_CoverObjScroll( ZKN2_WORK * wk, u16 objID, s16 spd );

//--------------------------------------------------------------------------------------------
/**
 * 図鑑モード切り替えスイッチＯＢＪを移動
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJ ID
 * @param	px		Ｘ座標
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_CoverObjMove( ZKN2_WORK * wk, u16 objID, s16 px );

//--------------------------------------------------------------------------------------------
/**
 * 図鑑モード切り替えスイッチＯＢＪのモードごとの座標取得
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	現在のモードのＸ座標
 */
//--------------------------------------------------------------------------------------------
extern s16 ZKN2OBJ_CoverDefObjPxGet( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * リストカーソル移動
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJID
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_ListCursorMove( ZKN2_WORK * wk, u32 objID );

//--------------------------------------------------------------------------------------------
/**
 * リストカーソル非表示
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_ListCursorOff( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * リストスクロール矢印アニメ切り替え
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJID
 * @param	space	リストにスペースがあるか ( TRUE = あり )
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_ListArrowAnmChange( ZKN2_WORK * wk, u32 objID, BOOL space );

//--------------------------------------------------------------------------------------------
/**
 * リスト切り替えバーのアニメ変更
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJID
 * @param	space	リストにスペースがあるか ( TRUE = あり )
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_ListBarAnmChg( ZKN2_WORK * wk, u32 objID, BOOL space );

//--------------------------------------------------------------------------------------------
/**
 * リスト切り替えバーのＹ座標移動最小値
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJ ID
 *
 * @return	Ｙ座標移動最小値
 */
//--------------------------------------------------------------------------------------------
extern u32 ZKN2OBJ_ListBarMoveYMin( ZKN2_WORK * wk, u32 objID );

//--------------------------------------------------------------------------------------------
/**
 * リスト切り替えバーのＹ座標移動最大値
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJ ID
 *
 * @return	Ｙ座標移動最小値
 */
//--------------------------------------------------------------------------------------------
extern u32 ZKN2OBJ_ListBarMoveYMax( ZKN2_WORK * wk, u32 objID );

//--------------------------------------------------------------------------------------------
/**
 * 指定座標にリスト切り替えバーがあるか
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJ ID
 * @param	tpx		Ｘ座標
 * @param	tpy		Ｙ座標
 *
 * @retval	"TRUE = あり"
 * @retval	"FALSE = なし"
 */
//--------------------------------------------------------------------------------------------
extern BOOL ZKN2OBJ_ListBarCheck( ZKN2_WORK * wk, u32 objID, u32 tpx, u32 tpy );

//--------------------------------------------------------------------------------------------
/**
 * 指定座標にリスト切り替えバーを移動
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJ ID
 * @param	tpx		Ｘ座標
 * @param	tpy		Ｙ座標
 * @param	space	リストにスペースがあるか ( TRUE = あり )
 *
 * @retval	"TRUE = スクロール"
 * @retval	"FALSE = それ以外"
 */
//--------------------------------------------------------------------------------------------
extern BOOL ZKN2OBJ_ListBarMove( ZKN2_WORK * wk, u32 objID, u32 tpx, u32 tpy, BOOL space );

//--------------------------------------------------------------------------------------------
/**
 * スクロール値からリスト切り替えバーのＹ座標を取得
 *
 * @param	wk		図鑑画面ワーク
 * @param	scr		スクロール値
 * @param	objID	OBJ ID
 * @param	space	リストにスペースがあるか ( TRUE = あり )
 *
 * @return	Ｙ座標
 */
//--------------------------------------------------------------------------------------------
extern u32 ZKN2OBJ_ListBarPosYGet( ZKN2_WORK * wk, u32 scr, u32 objID, BOOL space );

//--------------------------------------------------------------------------------------------
/**
 * リスト切り替えバーの１フレームのＹ移動量を取得
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJ ID
 * @param	py		Ｙ座標
 * @param	cnt		動作フレーム数
 *
 * @return	Ｙ移動量
 */
//--------------------------------------------------------------------------------------------
extern u32 ZKN2OBJ_ListBarAotoMoveCntGet( ZKN2_WORK * wk, u32 objID, u32 py, u32 cnt );

//--------------------------------------------------------------------------------------------
/**
 * リスト切り替えバーを移動
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJ ID
 * @param	my		Ｙ移動量
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_ListBarAotoMove( ZKN2_WORK * wk, u32 objID, s32 my );

//--------------------------------------------------------------------------------------------
/**
 * リスト切り替えバーを現在のスクロール位置へ移動
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJ ID
 * @param	space	リストにスペースがあるか ( TRUE = あり )
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_ListBarPosYSet( ZKN2_WORK * wk, u32 objID, BOOL space );

//--------------------------------------------------------------------------------------------
/**
 * 捕獲済みボール表示切り替え
 *
 * @param	wk		図鑑画面ワーク
 * @param	pos		選択位置
 * @param	objID	OBJ ID
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_ListBallPut( ZKN2_WORK * wk, u32 pos, u32 objID );

//--------------------------------------------------------------------------------------------
/**
 * トップ・リスト画面ＯＢＪ全削除
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_TopListObjDelete( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面ＯＢＪ初期化
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchPageInit( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面ＯＢＪ全削除
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchObjDelete( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面リストに必要ないＯＢＪを削除
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchInputObjDelete( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面リストページＯＢＪ設定
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchPageListLoad( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面リストページリソース解放
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchPageListDelete( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面の姿ＯＢＪセット
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_MainFormSet( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面ＯＢＪ表示
 *
 * @param	wk			図鑑画面ワーク
 * @param	mode		表示モード（ページ）
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchMode( ZKN2_WORK * wk, u32 mode );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面サイズ変更ＯＢＪ移動
 *
 * @param	wk			図鑑画面ワーク
 * @param	x			Ｘ座標
 * @param	id			OBJ ID
 * @param	flg			カーソル移動フラグ
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchMaxMinMove( ZKN2_WORK * wk, u32 x, u32 id, BOOL flg );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面サイズ数字ＯＢＪアニメ変更
 *
 * @param	wk		図鑑画面ワーク
 * @param	id		OBJ ID
 * @param	num		サイズ
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchMaxMinNumChange( ZKN2_WORK * wk, u32 id, u32 num );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面サイズ変更ＯＢＪの位置取得
 *
 * @param	wk		図鑑画面ワーク
 * @param	id		OBJ ID
 *
 * @return	位置
 */
//--------------------------------------------------------------------------------------------
extern u32 ZKN2OBJ_SearchPosMaxMinGet( ZKN2_WORK * wk, u32 id );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面サイズからサイズ変更ＯＢＪの表示座標を取得
 *
 * @param	wk		図鑑画面ワーク
 * @param	prm		サイズ値
 *
 * @return	座標
 */
//--------------------------------------------------------------------------------------------
extern u32 ZKN2OBJ_SearchMaxMinPosGet( ZKN2_WORK * wk, u32 prm );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面サイズ変更矢印ＯＢＪアニメ変更
 *
 * @param	wk		図鑑画面ワーク
 * @param	prm		サイズ値
 * @param	id		OBJ ID
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchMaxMinArrowCahnge( ZKN2_WORK * wk, u32 prm, u32 id );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面用カバースイッチセット
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchCoverSwithPut( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面用カバースイッチ移動
 *
 * @param	wk		図鑑画面ワーク
 * @param	spd		移動速度
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchCoverSwithMove( ZKN2_WORK * wk, s16 spd );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面リストＯＢＪ表示切替
 *
 * @param	wk		図鑑画面ワーク
 * @param	flg		表示フラグ ( TRUE = 表示 )
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchPageListVanish( ZKN2_WORK * wk, BOOL flg );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面姿ＯＢＪスクロール設定
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchFormSubMoveInit( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 検索画面姿ＯＢＪスクロール
 *
 * @param	wk		図鑑画面ワーク
 * @param	mv		移動値
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchFormSubMove( ZKN2_WORK * wk, s16 mv );

//--------------------------------------------------------------------------------------------
/**
 * 検索条件アイコン移動設定
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchListIconMoveUInit( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 検索条件アイコン移動
 *
 * @param	wk		図鑑画面ワーク
 * @param	mv		移動値
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchListIconMove( ZKN2_WORK * wk, s8 mv );

//--------------------------------------------------------------------------------------------
/**
 * 検索条件アイコンデフォルト座標セット
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SearchListIconDefPosSet( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面OBJ初期化
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_DetailInit( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面OBJ削除
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_DetailDelete( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面カーソル配置
 *
 * @param	wk		図鑑画面ワーク
 * @param	pos		カーソル位置
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_DetailCursorPut( ZKN2_WORK * wk, u32 pos );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面分布ページＯＢＪ初期化
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_PlacePageInit( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面分布ページＯＢＪ削除
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_PlacePageDelete( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面分布ページ時間帯カーソル移動
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_PlaceTimeCursorMove( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面分布ページ 場所リストバー初期化
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZON2OBJ_EncountListBarInit( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面分布ページ 主人公アイコンの配置
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_MyFacePut( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面分布ページ 分布位置ＯＢＪ表示切替（リスト選択時）
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_PlacePosChange( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面分布ページ 分布位置ＯＢＪ全非表示
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_PlacePosAllOff( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面分布ページ 分布位置ＯＢＪ表示切替（点滅時）
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_PlacePosOnOffChange( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面大きさページＯＢＪ初期化
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SizePageInit( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面大きさページＯＢＪ削除
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_SizePageDelete( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 大きさ比べアニメワーク初期化
 *
 * @param	syswk	図鑑画面ワーク
 * @param	anmwk	アニメワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_WeightAnmWorkInit( ZKN2_WORK * syswk, ZKN2OBJ_WEIGHT_ANM_WORK * anmwk );

//--------------------------------------------------------------------------------------------
/**
 * 大きさ比べ演出：アイコン下降アニメ
 *
 * @param	wk	アニメワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern BOOL ZKN2OBJ_WeightAnmFall( ZKN2OBJ_WEIGHT_ANM_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 大きさ比べ演出：比較アニメメイン
 *
 * @param	wk	アニメワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern BOOL ZKN2OBJ_WeightAnmMain( ZKN2OBJ_WEIGHT_ANM_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面姿ページＯＢＪ初期化
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_FormPageInit( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面姿ページＯＢＪ削除
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_FormPageDelete( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面姿ページ１のポケアイコン初期化
 *
 * @param	wk			図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_FormPage1PokeIconInit( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面姿ページのポケアイコン移動初期化
 *
 * @param	wk		図鑑画面ワーク
 * @param	mv		移動方向
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_FormPokeIconMoveInit( ZKN2_WORK * wk, s16 mv );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面姿ページのポケアイコン移動
 *
 * @param	wk		図鑑画面ワーク
 * @param	mv		移動値
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_FormPokeIconMove( ZKN2_WORK * wk, s16 mv );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面姿ページ１のポケグラ切り替え
 *
 * @param	wk		図鑑画面ワーク
 * @param	pos		リスト位置
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_FormPage1PokeGraChange( ZKN2_WORK * wk, u32 pos );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面リストスクロール矢印アニメ切り替え
 *
 * @param	wk		図鑑画面ワーク
 * @param	pos		現在地
 * @param	max		項目数
 * @param	objID	OBJ ID
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_DetailListArrowAnmChange( ZKN2_WORK * wk, s8 pos, s8 max, u16 objID );

//--------------------------------------------------------------------------------------------
/**
 * リスト切り替えバーのＹ座標移動最小値取得
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJ ID
 * @param	tbl		Ｙサイズテーブル
 * @param	py		リールＯＢＪの表示Ｙ座標
 * @param	sy		リールＯＢＪのＹサイズ
 *
 * @return	Ｙ座標移動最小値
 */
//--------------------------------------------------------------------------------------------
extern u32 ZKN2OBJ_DetailListBarMoveYMin( ZKN2_WORK * wk, u32 objID, const u8 * tbl, u32 py, u32 sy );

//--------------------------------------------------------------------------------------------
/**
 * リスト切り替えバーのＹ座標移動最大値取得
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJ ID
 * @param	tbl		Ｙサイズテーブル
 * @param	py		リールＯＢＪの表示Ｙ座標
 * @param	sy		リールＯＢＪのＹサイズ
 *
 * @return	Ｙ座標移動最小値
 */
//--------------------------------------------------------------------------------------------
extern u32 ZKN2OBJ_DetailListBarMoveYMax( ZKN2_WORK * wk, u32 objID, const u8 * tbl, u32 py, u32 sy );

//--------------------------------------------------------------------------------------------
/**
 * 指定座標にリスト切り替えバーがあるか（詳細画面姿ページ用）
 *
 * @param	wk		図鑑画面ワーク
 * @param	tpx		Ｘ座標
 * @param	tpy		Ｙ座標
 *
 * @retval	"TRUE = あり"
 * @retval	"FALSE = なし"
 */
//--------------------------------------------------------------------------------------------
extern BOOL ZKN2OBJ_FormListBarCheck( ZKN2_WORK * wk, u32 tpx, u32 tpy );

//--------------------------------------------------------------------------------------------
/**
 * 指定座標にリスト切り替えバーがあるか（詳細画面分布ページ用）
 *
 * @param	wk		図鑑画面ワーク
 * @param	tpx		Ｘ座標
 * @param	tpy		Ｙ座標
 *
 * @retval	"TRUE = あり"
 * @retval	"FALSE = なし"
 */
//--------------------------------------------------------------------------------------------
extern BOOL ZKN2OBJ_PlaceListBarCheck( ZKN2_WORK * wk, u32 tpx, u32 tpy );

//--------------------------------------------------------------------------------------------
/**
 * 指定座標にリスト切り替えバーを移動（詳細画面姿ページ用）
 *
 * @param	wk		図鑑画面ワーク
 * @param	tpx		Ｘ座標
 * @param	tpy		Ｙ座標
 *
 * @retval	"TRUE = スクロール"
 * @retval	"FALSE = それ以外"
 */
//--------------------------------------------------------------------------------------------
extern BOOL ZKN2OBJ_FormListBarMove( ZKN2_WORK * wk, u32 tpx, u32 tpy );

//--------------------------------------------------------------------------------------------
/**
 * 指定座標にリスト切り替えバーを移動（詳細画面分布ページ用）
 *
 * @param	wk		図鑑画面ワーク
 * @param	tpx		Ｘ座標
 * @param	tpy		Ｙ座標
 *
 * @retval	"TRUE = スクロール"
 * @retval	"FALSE = それ以外"
 */
//--------------------------------------------------------------------------------------------
extern BOOL ZKN2OBJ_PlaceListBarMove( ZKN2_WORK * wk, u32 tpx, u32 tpy );

//--------------------------------------------------------------------------------------------
/**
 * スクロール値からリスト切り替えバーのＹ座標を取得（詳細画面姿ページ用）
 *
 * @param	wk		図鑑画面ワーク
 * @param	scr		スクロール値
 *
 * @return	Ｙ座標
 */
//--------------------------------------------------------------------------------------------
extern u32 ZKN2OBJ_FormListBarPosYGet( ZKN2_WORK * wk, u32 scr );

//--------------------------------------------------------------------------------------------
/**
 * スクロール値からリスト切り替えバーのＹ座標を取得（詳細画面分布ページ用）
 *
 * @param	wk		図鑑画面ワーク
 * @param	scr		スクロール値
 *
 * @return	Ｙ座標
 */
//--------------------------------------------------------------------------------------------
extern u32 ZKN2OBJ_PlaceListBarPosYGet( ZKN2_WORK * wk, u32 scr );

//--------------------------------------------------------------------------------------------
/**
 * リスト切り替えバーの１フレームのＹ移動量を取得
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJ ID
 * @param	py		Ｙ座標
 * @param	cnt		動作フレーム数
 *
 * @return	Ｙ移動量
 */
//--------------------------------------------------------------------------------------------
extern u32 ZKN2OBJ_DetailListBarAotoMoveCntGet( ZKN2_WORK * wk, u32 objID, u32 py, u32 cnt );

//--------------------------------------------------------------------------------------------
/**
 * リスト切り替えバーを移動
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJ ID
 * @param	my		Ｙ移動量
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_DetailListBarAotoMove( ZKN2_WORK * wk, u32 objID, s32 my );

//--------------------------------------------------------------------------------------------
/**
 * リスト切り替えバーを現在のスクロール位置へ移動（詳細画面姿ページ用）
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_FormListBarPosYSet( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * リスト切り替えバーを現在のスクロール位置へ移動（詳細画面分布ページ用）
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_PlaceListBarPosYSet( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面姿ページ１ＯＢＪ表示
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_Form1PageObjPut( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面姿ページ１ＯＢＪ非表示
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_Form1PageObjOff( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面姿ページ２ＯＢＪ表示
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_Form2PageObjPut( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面姿ページ２ＯＢＪ非表示
 *
 * @param	wk		図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_Form2PageObjOff( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面姿ページ２ ポケモンアイコン切り替え
 *
 * @param	wk		図鑑画面ワーク
 * @param	objID	OBJ ID
 * @param	pos		リスト位置
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_Form2PagePokeIconChange( ZKN2_WORK * wk, u32 objID, s8 pos );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面姿ページ２ ポケグラ切り替え
 *
 * @param	wk			図鑑画面ワーク
 * @param	objID		OBJ ID
 * @param	pos			リスト位置
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_Form2PagePokeGraChange( ZKN2_WORK * wk, u32 objID, u32 pos );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面姿ページ２ カーソル配置
 *
 * @param	wk			図鑑画面ワーク
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_Form2CursorPut( ZKN2_WORK * wk );

//--------------------------------------------------------------------------------------------
/**
 * 詳細画面分布ページ 顔アイコンアニメ変更
 *
 * @param	wk			図鑑画面ワーク
 * @param	mv			点滅動作フラグ
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void ZKN2OBJ_EncFaceAnmChange( ZKN2_WORK * wk, BOOL mv );


#endif	// ZKN2_OBJ_H